'''
nonlocal和global关键字
    nonlocal    用来在内部函数中，声明外层的局部变量
    global      函数内声明全局变量，然后才能使用全局变量
'''
a = 100


def outer():
    b = 10

    def inner():
        nonlocal b

        print(b + 100)  # 上面不声明无法直接使用
        b = 20

        global a
        a = 1000

    inner()
    print('outer b:', b)


outer()
print('a:', a)
